diff --git a/internal/ingress/controller/checker.go b/internal/ingress/controller/checker.go
index 3229778bb..51abb316f 100644
--- a/internal/ingress/controller/checker.go
+++ b/internal/ingress/controller/checker.go
@@ -34,10 +34,10 @@ func (n NGINXController) Name() string {
 }
 
 // Check returns if the nginx healthz endpoint is returning ok (status code 200)
-func (n *NGINXController) Check(_ *http.Request) error {
-	if n.isShuttingDown {
-		return fmt.Errorf("the ingress controller is shutting down")
-	}
+func (n *NGINXController) Check(r *http.Request) error {
+        if r.Header.Get("D8s-External-Check") == "True" && n.isShuttingDown {
+                return fmt.Errorf("the ingress controller is shutting down")
+        }

	// check the nginx master process is running
	fs, err := proc.NewFS("/proc", false)
